約 5,518,883 件
https://w.atwiki.jp/kylico/pages/47.html
Android開発環境作成 OS Windows7 Professional SP1 手順 目次 Java SDK のインストール Eclipse のインストール Android Plugin のインストール Android SDK のインストール JREの設定 手順 内容 JDK のインストール 1.JDK のダウンロード Oracleのホームページより、JDKをダウンロードします。 http //java.sun.com/javase/ja/6/download.html 2.JDK のインストール ダウンロードしたexeをダブルクリックしてインストールします。 3.環境変数の設定 java配下のbinにパスを通す。 環境変数「PATH」に、Java配下のbinを設定します。 ※Linuxでの注意点 /etc/profileに以下を設定 JAVA_HOME=/usr/local/jdk1.6.0_ version PATH=$PATH $JAVA_HOME/bin export JAVA_HOME PATH 設定後、「source .bash_profile」で反映させる。 Eclipse のインストール Eclipseに日本語パッケージ適用済みの「Pleiades」を使用します。 1.Pleiadesのダウンロード Pleiadesのホームページの「日本語 Eclipse / Pleiades All in One 日本語ディストリビューション (zip ファイル)」よりダウンロードするバージョンを選択して、「Pleiades All in One Java」をダウンロードします。 http //mergedoc.sourceforge.jp/ 2.Pleiadesのインストール ダウンロードしたZIPファイルを展開して、Cドライブ直下などに「C \pleiades」として移動します。 私は「D \usr\local\pleiades」としました。 3.Pleiadesの起動 展開した「eclipse」フォルダ配下に「eclipse.exe」があるので、ダブルクリックするとeclipseが起動します。 デスクトップなどにショートカットを作成しておくと便利です。 4.ワークスペースの設定 起動後にワークスペースを設定します。 私は「D \home\ユーザー名\workspace」としました。 ※Linuxでの注意点 readme_pleiades.txtには、「eclipse.ini の最終行に以下の記述を追加。」とありますが、相対パスではなく絶対パスで記載します。 javaagent plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -startup plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.1.R36x_v20100810 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile #-showsplash #org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -XX MaxPermSize=256m -Xms40m -Xmx512m -javaagent /usr/local/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar Android Plugin のインストール 「Android Development Tools(ADT)」をインストールします。 1.ダイアログ起動 「ヘルプ」→「新規ソフトウェアのインストール」を押下するとダイアログを表示されます。 2.リポジトリの登録 「追加」ボタンを押下して表示されたダイアログの「Location」に以下のURLを入力します。 https //dl-ssl.google.com/android/eclipse/ 3.プラグインのインストール ダイアログで「開発ツール」を選択して、「次へ」ボタンを押下します。 インストールするプラグインの確認画面になりますので、確認後「次へ」ボタンを押下します。 ライセンスの確認画面になりますので、確認後「使用条件の条項に同意します」をチェックして「完了」ボタンを押下します。 プラグインのインストールが完了すると、eclipseの再起動が促されますので再起動します。 Android SDK のインストール 1.Android SDK のダウンロード Androidのページから最新版をダウンロードする。 (今回はZIP形式のファイルをダウンロードしました。) http //developer.android.com/sdk/index.html 2.Android SDK のインストール 展開したファイルに含まれる「android-sdk-windows」フォルダを適当な場所にコピーします。 私は「D \usr\local\android-sdk-windows」としました。 3.環境変数の設定 環境変数「PATH」に、Android SDK の toolsフォルダ を設定します。 ※Linuxでの注意点 /etc/profileに以下を設定 JAVA_HOME=/usr/local/jdk1.6.0_ version PATH=$PATH $JAVA_HOME/bin /usr/local/android-sdk-linux_x86/tools export JAVA_HOME PATH 4.eclipseの設定 「ウィンドウ」→「設定」を押下します。 表示されたダイアログの左ペインから「Android」を選択します。 「SDKロケーション」にAndroid SDKのパスを設定します。 私は「D \usr\local\android-sdk-windows」としました。 5.SDKのコンポーネント追加 「ウィンドウ」→「Android SDK および ADV マネージャー」を押下します。 左ペインより「Available packages」を選択します。 必要なものを選び、「選択項目をインストール」を押下します。 ライセンスの確認を行います。(「すべて受諾」を選択して「インストール」ボタンを押下する。) JREの設定 「ウィンドウ」→「設定」→「JAVA」→「インストール済みのJRE」を選択。 OpenJDKのみであれば、JDKを指定する。
https://w.atwiki.jp/mywiki2010/pages/14.html
USBブート可能なx86マシンでAndroidを動作させる。 参考サイト一覧 「Android」をx86パソコンで動かそう ITpro 話題の携帯向けOS「Android」をx86パソコンで動かしてみよう (2009/02/27) ブログなど NWLab.com USB起動可能なAndoroid OSでPCからAndroidを起動してみました(2009/04/13) 即席USBブート環境構築(Windows編) ダウンロード可能なイメージファイルでお手軽にAndroidを動作させる。 (更新 2010/02/09) (1) 必要なものを用意 WindowsがインストールされたPC USBブート可能なPC(WindowsPCと同じでも良い) USBメモリ1GBもあれば十分。 FAT32でフォーマットしておく。 不慮の事故でデータが消えても困らないよう、大事なデータは事前にバックアップ。 (2) Androidのブート・イメージ入手 「USBブート・イメージ入手先」からファイルをダウンロードする。 (3) ブート・イメージの書き込み 書き込みソフトを使ってブート・イメージをUSBメモリに書き込む。 ソフト一覧 DDforWindowsWindowsXP, WindowsVistaで使用可。他Windowsでは未検証。 本ソフトでUSBから読み込んだディスクイメージはLinuxのddコマンドでそのまま使用可能。 (4) Android起動 Andoridを動かすPCでUSBブート可能になるようBIOSを設定するEeePC1000HEでは、PC起動時にESCキーを連打することでブート・ドライブを選択可能。 電源の入っていないPCのUSBポートにUSBメモリを差し込む 電源を入れるとAndroidが立ち上がる起動中にもUSBアクセスを行っているので、USBメモリは抜かないよう注意。 設定を変更した場合(表示言語など)は変更内容がUSBメモリに書き込まれ、次回起動時にも反映される。
https://w.atwiki.jp/android/pages/136.html
ネット上に公開されているAndroidアプリケーションの索引 ※基本的にソース、あるいはapkファイルが公開されているもの。 ツール タスクマネージャ SDK version Task manager primitive prototype m3-rc37a以前 メディアプレイヤー Video/Music player sample (from local disk as well as remote URL’s) m3-rc37a以前 メール Send email via GMail (actually via SMTP) m3-rc37a以前 GoogleTalk Totally *Unofficial* Android GTalk Client (Send/Receive XMPP Messages) m3-rc37a以前 Android用Google Talkクライアントをm5-rc14に移植 m5-rc14 Mame Talk Ver.0.8 m5-rc14 Twitter Twitter Client for Android (How to make XML over HTTP calls) m3-rc37a以前 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (TwitterClient3.png) AndroidでTwitterクライアント ver.3 m3-rc37a以前 地図関連 Androidで地図アプリケーションを作ってみた m3-rc37a以前 Androidの地図アプリをぐるなびに対応しました m3-rc37a以前 Androidの地図アプリをm5-rc14っぽくしてみた m5-rc14 ビューア ComicViewer3 -Androidで電子ブックリーダ m3-rc37a以前 Android用電子ブックリーダをm5-rc14に移植 m5-rc14 ゲーム テーブルゲーム AndroidとFlickrで神経衰弱 m3-rc37a以前 ブロック崩しをm5-rc14に移植 m5-rc14 その他 アンドロイド・アプリケーション こめんと なるべく集めて回るけど作ったひとが自発的に追加してくれるとありがたいなあ - kojira 2008-02-12 21 54 53 プラグイン追加とかが自分で出来ないから不便だなあ。そのうち移転するかも。 - kojira 2008-02-18 23 09 07 名前
https://w.atwiki.jp/rodrigues/
Not Found
https://w.atwiki.jp/skill2linux/pages/22.html
RSS リーダの作成 以下の記事を参考に作成。 というか、ほぼそのままです…。 全然、整理をつけていないので、そのうち纏めます…。 http //itpro.nikkeibp.co.jp/article/COLUMN/20100105/342883/?k2 メイン画面(レイアウト) ?xml version="1.0" encoding="utf-8"? !-- mainアクティビティ用 -- LinearLayout xmlns android="http //schemas.android.com/apk/res/android" android orientation="vertical" android layout_width="fill_parent" android layout_height="fill_parent" !-- リストビュー -- ListView android id="@android id/list" android layout_width="wrap_content" android layout_height="wrap_content" / !-- リストが空のときに表示 -- /LinearLayout 行(レイアウト) ?xml version="1.0" encoding="utf-8"? LinearLayout android id="@+id/item_container" android layout_width="fill_parent" android layout_height="wrap_content" android orientation="vertical" xmlns android="http //schemas.android.com/apk/res/android" TextView android id="@+id/item_title" android layout_width="fill_parent" android layout_height="wrap_content" android textColor="#ffffff" android textSize="18sp" android lines="1" / TextView android id="@+id/item_descr" android layout_width="fill_parent" android layout_height="wrap_content" android lines="2" android ellipsize="end" / /LinearLayout 詳細画面(レイアウト) ?xml version="1.0" encoding="utf-8"? !-- item_detail.xml -- LinearLayout android layout_width="fill_parent" android layout_height="wrap_content" android orientation="vertical" xmlns android="http //schemas.android.com/apk/res/android" TextView android id="@+id/item_detail_title" android layout_width="fill_parent" android layout_height="wrap_content" android textAppearance="?android attr/textAppearanceLarge" android background="@android drawable/dark_header" / TextView android id="@+id/item_detail_descr" android layout_width="fill_parent" android layout_height="wrap_content" / /LinearLayout メイン画面 package jp.co.persil.rss; import java.util.ArrayList; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ListView; public class PersilRSS extends ListActivity { // ------------------------------------------------------------ // メンバ // ------------------------------------------------------------ private ArrayList Item mItems; private RssListAdapter mAdapter; // ------------------------------------------------------------ // 定数 // ------------------------------------------------------------ public static final String RSS_FEED_URL = "http //itpro.nikkeibp.co.jp/rss/ITpro.rdf"; public static final int MENU_ITEM_RELOAD = Menu.FIRST; // ------------------------------------------------------------ // 【EVENT】Activity 作成 // ------------------------------------------------------------ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { // スーパークラスの呼出 super.onCreate(savedInstanceState); setContentView(R.layout.main); // Itemオブジェクトを保持するためのリストを生成し、アダプタに追加する mItems = new ArrayList Item (); mAdapter = new RssListAdapter(this, mItems); // タスクを起動する RssParserTask task = new RssParserTask(this, mAdapter); task.execute(RSS_FEED_URL); } // ------------------------------------------------------------ // 【EVENT】リストの項目を選択した時の処理 // ------------------------------------------------------------ @Override protected void onListItemClick(ListView l, View v, int position, long id) { Item item = mItems.get(position); Intent intent = new Intent(this, ItemDetailActivity.class); intent.putExtra("TITLE", item.getTitle()); intent.putExtra("DESCRIPTION", item.getDescription()); startActivity(intent); } // ------------------------------------------------------------ // 【EVENT】オプションボタン追加 // ------------------------------------------------------------ @Override public boolean onCreateOptionsMenu(Menu menu) { boolean result = super.onCreateOptionsMenu(menu); // デフォルトではアイテムを追加した順番通りに表示する menu.add(0, MENU_ITEM_RELOAD, 0, "更新"); return result; } // ------------------------------------------------------------ // 【EVENT】MENUの項目を押したときの処理 // ------------------------------------------------------------ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // 更新 case MENU_ITEM_RELOAD // アダプタを初期化し、タスクを起動する mItems = new ArrayList Item (); mAdapter = new RssListAdapter(this, mItems); // タスクはその都度生成する RssParserTask task = new RssParserTask(this, mAdapter); task.execute(RSS_FEED_URL); return true; } return super.onOptionsItemSelected(item); } // ------------------------------------------------------------ // 【METHOD】ツリービューアイテムを追加 // ------------------------------------------------------------ public void setListAdapter( RssListAdapter mAdapter) { // アダプタをリストビューにセットする ListView lv = (ListView)findViewById(android.R.id.list); lv.setAdapter(mAdapter); } } 行へのアイテム管理用 package jp.co.persil.rss; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; //RssListAdapter.java public class RssListAdapter extends ArrayAdapter Item { // ------------------------------------------------------------ // メンバ // ------------------------------------------------------------ private LayoutInflater mInflater; private TextView mTitle; private TextView mDescr; // ------------------------------------------------------------ // コンストラクタ // ------------------------------------------------------------ public RssListAdapter(Context context, List Item objects) { super(context, 0, objects); mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } // ------------------------------------------------------------ // 【METHOD】1行毎に View を作成する // ------------------------------------------------------------ @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (convertView == null) { view = mInflater.inflate(R.layout.item_row, null); } // 現在参照しているリストの位置からItemを取得する Item item = this.getItem(position); if (item != null) { // Itemから必要なデータを取り出し、それぞれTextViewにセットする String title = item.getTitle().toString(); mTitle = (TextView) view.findViewById(R.id.item_title); mTitle.setText(title); String descr = item.getDescription().toString(); mDescr = (TextView) view.findViewById(R.id.item_descr); mDescr.setText(descr); } return view; } } 画面への設定用ルーチン package jp.co.persil.rss; import java.io.IOException; import java.io.InputStream; import java.net.URL; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.app.ProgressDialog; import android.os.AsyncTask; import android.util.Xml; public class RssParserTask extends AsyncTask String, Integer, RssListAdapter { // ------------------------------------------------------------ // メンバ // ------------------------------------------------------------ private PersilRSS mActivity; private RssListAdapter mAdapter; private ProgressDialog mProgressDialog; // ------------------------------------------------------------ // コンストラクタ // ------------------------------------------------------------ public RssParserTask(PersilRSS activity, RssListAdapter adapter) { mActivity = activity; mAdapter = adapter; } // ------------------------------------------------------------ // 【Method】メインスレッドから execute 呼出時に実行される // 【Thread】メインスレッド // ------------------------------------------------------------ @Override protected void onPreExecute() { // プログレスバーを表示する mProgressDialog = new ProgressDialog(mActivity); mProgressDialog.setMessage("Now Loading..."); mProgressDialog.show(); } // ------------------------------------------------------------ // 【Method】メインスレッドから execute 呼出時に実行される // 【Thread】バックグラウンド // ------------------------------------------------------------ @Override protected RssListAdapter doInBackground(String... params) { RssListAdapter result = null; try { // HTTP経由でアクセスし、InputStreamを取得する URL url = new URL(params[0]); InputStream is = url.openConnection().getInputStream(); result = parseXml(is); } catch (Exception e) { e.printStackTrace(); } // ここで返した値は、onPostExecuteメソッドの引数として渡される return result; } // ------------------------------------------------------------ // 【Method】doInBackground のメソッド完了後に実行される // 【Thread】メインスレッド // ------------------------------------------------------------ @Override protected void onPostExecute(RssListAdapter result) { mProgressDialog.dismiss(); mActivity.setListAdapter(result); } // ------------------------------------------------------------ // 【Method】XML をパースする // ------------------------------------------------------------ public RssListAdapter parseXml(InputStream is) throws IOException, XmlPullParserException { // XML パーサをインスタンス化 XmlPullParser parser = Xml.newPullParser(); // try-catch 開始 try { // 引数で受け取ったストリームを設定 parser.setInput(is, null); // イベントタイプを設定 int eventType = parser.getEventType(); // 初期化 Item currentItem = null; // ドキュメントの最後まで繰り返し while (eventType != XmlPullParser.END_DOCUMENT) { String tag = null; switch (eventType) { // 開始タグ case XmlPullParser.START_TAG tag = parser.getName(); if (tag.equals("item")) { currentItem = new Item(); } else if (currentItem != null) { if (tag.equals("title")) { currentItem.setTitle(parser.nextText()); } else if (tag.equals("description")) { currentItem.setDescription(parser.nextText()); } } break; // 終了タグ case XmlPullParser.END_TAG tag = parser.getName(); if (tag.equals("item")) { mAdapter.add(currentItem); } break; } eventType = parser.next(); } } catch (Exception e) { e.printStackTrace(); } return mAdapter; } } アイテム管理用 package jp.co.persil.rss; public class Item { // ------------------------------------------------------------ // メンバ // ------------------------------------------------------------ private CharSequence mTitle; private CharSequence mDescription; // ------------------------------------------------------------ // コンストラクタ // ------------------------------------------------------------ public Item() { mTitle = ""; mDescription = ""; } // ------------------------------------------------------------ // 【getter】Description // ------------------------------------------------------------ public CharSequence getDescription() { return mDescription; } // ------------------------------------------------------------ // 【setter】Description // ------------------------------------------------------------ public void setDescription(CharSequence description) { mDescription = description; } // ------------------------------------------------------------ // 【getter】Title // ------------------------------------------------------------ public CharSequence getTitle() { return mTitle; } // ------------------------------------------------------------ // 【setter】Title // ------------------------------------------------------------ public void setTitle(CharSequence title) { mTitle = title; } } 行単位のアクティビティ package jp.co.persil.rss; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class ItemDetailActivity extends Activity { // ------------------------------------------------------------ // メンバ // ------------------------------------------------------------ private TextView mTitle; private TextView mDescr; // ------------------------------------------------------------ // コンストラクタ // ------------------------------------------------------------ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.item_detail); Intent intent = getIntent(); String title = intent.getStringExtra("TITLE"); mTitle = (TextView) findViewById(R.id.item_detail_title); mTitle.setText(title); String descr = intent.getStringExtra("DESCRIPTION"); mDescr = (TextView) findViewById(R.id.item_detail_descr); mDescr.setText(descr); } }
https://w.atwiki.jp/nanocoding/pages/17.html
package com.android.NanochActivity; import com.android.NanochActivity.R; import android.app.Activity; import android.view.View; import android.os.Bundle; public class NanochActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.skin_1); } public void affect(View sender){ android.content.Intent intent = new android.content.Intent(android.content.Intent.ACTION_SET_WALLPAPER); startActivity(intent); } }
https://w.atwiki.jp/mgnrc/pages/39.html
概要 概要 プラズマランチャーは上か下にしか設置できない。 他の武器とは発砲方法が異なり1度に6門まで同時発射する。 リロード時間は砲門数で変動する、1門が3秒で最大6門で5秒かかる。 曲射砲であり弾丸は放物線軌道を描いて飛翔する。着弾した時爆発して着弾点を中心に一番近いパーツに一つだけ爆風ダメージを与える事も出来る。 爆風範囲は、近距離なほど小さく弾丸の飛翔時間が0.8秒後以降に着弾すると100%の爆発範囲となる。 プラズマランチャーの伝達ダメージはBarrier Protectionが影響し、Barrier Protectionが100%に近いほど伝達しにくくなる。 Heal Rate Resistivity Protonivity Overclocked Damage Fire Rate 1.00 30 % 175 % 160 % 60 % Img Name Damage Fire Rate Overclocked BlastRadius Health CPU Load Robot Ranking Barrier Protection Mass Damage Fire Rate Plasma Launcher T3 1,402 3 s3.4 s3.8 s4.2 s5 s 2,244 1.8 s2.04 s2.28 s2.52 s3 s 13 m 1039 18 131 17 13.4 982 55 18 Plasma Launcher T4 2,411 3,858 14 m 1801 20 393 18 15.1 2226 80 24 Plasma Launcher T5 3,859 6,175 15 m 2990 22 1169 19 16.8 4835 125 32 Plasma Launcher T6 5,784 9,255 16 m 4747 24 3443 21 18.5 9534 185 41 Plasma Launcher T7 8,142 13,028 17 m 7192 26 10072 22 20.2 17729 295 51 Plasma Launcher T8 10,775 17,241 18 m 10373 28 29288 23 21.8 34472 490 63 Plasma Launcher T9 14,075 22,520 20 m 14206 30 84728 24 23.5 61341 820 78 Plasma Launcher T10 17,218 27,549 21 m 18423 32 244019 25 25.2 111851 1355 96 Plasma Launcher TX-1 11,353 (x2) 18,164 21 m 31260 300 16677182 25 37.8 995125 1859 815
https://w.atwiki.jp/android/pages/12.html
Androidって何? Androidは、オペレーティングシステム、ミドルウェアと鍵となるアプリケーションを含むモバイル端末のためのソフトウェアスタックです。 Android SDKのこの早めのリリースは、Javaプログラミング言語を使用しているAndroidプラットホームでアプリケーションを開発し始めるのに必要なツールとAPIを提供します。 特徴 コンポーネントの再利用と置き換えを可能にするアプリケーションフレームワーク モバイル端末に最適化したダルヴィーク(Dalvik)ヴァーチャルマシン オープンソース WebKit エンジンに基づく統合化されたブラウザー カスタム2Dグラフィックライブラリによる最適化されたグラフィックス 3DグラフィックはOpenGL ES 1.0の仕様準拠(ハードウェアアクセラレーションは任意) 構造化されたデータ領域のためのSQLite搭載 一般的なオーディオ、ビデオと静止画フォーマットをサポート(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF) GSM通話(ハードウェア依存) Bluetooth、EDGE、3G、WiFiに対応(ハードウェア依存) カメラ、GPS、コンパス、加速度計(ハードウェア依存) リッチな開発環境、端末エミュレーター、デバッグ、メモリー、パフォーマンスのプロファイリングのツール、およびEclipse IDE用のプラグイン Androidのアーキテクチャ 以下は、Androidオペレーティングシステムの主要コンポーネント図です。各々のセクションの詳細は下記に続きます。 アプリケーション Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。 アプリケーションフレームワーク 開発者はコアアプリケーションに用いられるものと同じフレームワークAPIへ完全にアクセスできます。 アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。 どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。 すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。 リスト、グリッド、テキストボックス、ボタンと組み込み可能ななウェブブラウザを含むアプリケーションを構築するのに用いることができる豊かで拡張可能なViews?のセット アプリケーションが他のアプリケーション(例えばアドレス帳)のデータにアクセスするか、彼ら自身のデータを共有することを可能にするContent Providers? Resource Manager?(ローカライズされた文字列、グラフィックスとレイアウトファイルのような非コード資源を提供する) すべてのアプリケーションがステータスバーでカスタムメイドのアラートを表示することを可能にするNotification Manager? アプリケーションのライフサイクルを管理して、共通のナビゲーション履歴を提供するActivity Manager? アプリケーションの詳細とウォークスルーについてはAndroidアプリケーションについて?を参照してください。 ライブラリ Androidは、Androidシステムの多様ななコンポーネントにより用いられるC/C++ライブラリのセットを含みます。 これらの能力は、Androidアプリケーションフレームワークを通して開発者に公開されます。 主なライブラリは以下の通りです。 システムCライブラリ 標準的なCシステムライブラリ(libc)。(組み込み向けLinuxベースのデバイスのために調整した)BSDから派生した実装です。 メディアライブラリ PacketVideo社のOpenCOREをベースにしています。ライブラリは、多くの一般的なオーディオとビデオ形式(MPEG4、H.264、MP3、AAC、AMR、JPGとPNGのような静止画を含む)の再生とレコーディングをサポートします。 Surface Manager 表示サブシステムへのアクセスを管理して、複数のアプリケーションからシームレスに2Dと3Dグラフィックレイヤーを合成します LibWebCore Androidブラウザーと組み込み可能なウェブ表示を可能にする最新のウェブブラウザエンジン SGL 下位層にある2Dグラフィックエンジン 3Dライブラリ OpenGL ES 1.0のAPIに準拠しています。ライブラリはハードウェア3Dアクセラレーション(ハードウェア依存)、あるいは標準装備の高度に最適化された3Dソフトウェアラスタライザーを使用します。 FreeType ビットマップとベクターフォントのレンダリング SQLite すべてのアプリケーションで利用可能な強力で軽量なリレーショナルデータベースエンジン Androidランタイム Androidは、Javaプログラミング言語のコアライブラリの機能の大部分を提供するコアライブラリを含んでいます。 あらゆるAndroidアプリケーションはDalvik VMのインスタンスをアプリケーション毎に生成することによって、独立したプロセスで動作します。 Dalvik VMはデバイスが効率的に複数のヴァーチャルマシンを走らせることができるように作られています。 Dalvik VMは、省メモリのために最適化されたDalvikで実行可能なフォーマット(.dex)を使用してファイルを実行します。 VMはレジスターに基づいた、Java言語コンパイラによってコンパイルされたクラスを付属の"dx"ツールを使用して.dexフォーマットに変換したものを実行します。 Dalvik VMは、Linuxカーネルの根底にある機能(例えばスレッディングと低レベルのメモリ管理)で成り立っています。 Linuxカーネル Androidは、Linux 2.6のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。 次 → Androidことはじめ 戻る 原文
https://w.atwiki.jp/yasrun/pages/65.html
package org.yasrun.test4; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; /** * 起動クラス */ public class Test4Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); /* 描画クラスのインスタンスを生成 */ MyView mView = new MyView(getApplication()); /* 現在のViewに設定 */ setContentView(mView); } } class Point { public Point(int x, int y) { this.X = x; this.Y = y; } public int X = 0; public int Y = 0; } /** * 描画用のクラス */ class MyView extends View { private Paint myPaint = new Paint(); private Paint myPaint2 = new Paint(); private Bitmap myBitmap; private List Point list = new ArrayList Point (); /* 画像のx座標 */ int x; /* 画像のy座標 */ int y; /** * コンストラクタ * * @param c */ public MyView(Context c) { super(c); /* イベントが取得できるようにFocusを有効にする */ setFocusable(true); /* Resourceインスタンスの生成 */ Resources res = this.getContext().getResources(); /* 画像の読み込み(res/drawable/gclue.png) */ myBitmap = BitmapFactory.decodeResource(res, R.drawable.icon); /* x,y座標の初期化 */ x = 0; y = 0; list.add(new Point(x + 24, y + 24)); myPaint2.setColor(Color.YELLOW); myPaint2.setStyle(Style.STROKE); } /** * 描画処理 */ protected void onDraw(Canvas canvas) { /* 背景色を設定 */ canvas.drawColor(Color.BLUE); /* 線描画 */ boolean first = true; int prevX = 0; int prevY = 0; for (Point p list) { if (!first) { canvas.drawLine(prevX, prevY, p.X, p.Y, myPaint2); } else { first = false; } prevX = p.X; prevY = p.Y; } /* Bitmapイメージの描画 */ canvas.drawBitmap(myBitmap, x, y, myPaint); } /** * タッチイベント */ public boolean onTouchEvent(MotionEvent event) { // タッチした時に実行 // 曲線にする場合はACTION_DOWNではなくACTION_MOVEにする。 if (event.getAction() == MotionEvent.ACTION_DOWN) { /* X,Y座標の取得 */ x = (int) event.getX(); y = (int) event.getY(); list.add(new Point(x + 24, y + 24)); /* 再描画の指示 */ invalidate(); } return true; } }
https://w.atwiki.jp/yasrun/pages/63.html
package org.yasrun.test3; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.view.View; public class Test3Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // クラスのインスタンスを生成 MyView mView = new MyView(getApplication()); // Viewに設定 setContentView(mView); } } /** * 描画用のクラス */ class MyView extends View { /** * コンストラクタ * * @param c */ public MyView(Context c) { super(c); setFocusable(true); } /** * 描画処理 */ protected void onDraw(Canvas canvas) { super.onDraw(canvas); /* 背景色を設定 */ canvas.drawColor(Color.BLACK); /* 描画するための線の色を設定 */ Paint mainPaint = new Paint(); // mainPaint.setStyle(Paint.Style.FILL); mainPaint.setStyle(Paint.Style.STROKE); for (int i = 0; i 100; i++) { int r = (int) (Math.random() * 205) + 50; int g = (int) (Math.random() * 205) + 50; int b = (int) (Math.random() * 205) + 50; int cx = (int) (Math.random() * 320); int cy = (int) (Math.random() * 480); int radius = (int) (Math.random() * 50) + 20; mainPaint.setARGB(r, g, b, 100); canvas.drawCircle(cx, cy, radius, mainPaint); } } }